package bean;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="tipoDeposito", discriminatorType=DiscriminatorType.STRING)
@Table(name = "Deposito")
public class DepositoBean implements Serializable{
	
	
	@Id
	//	@GeneratedValue
	@Column (name = "codigo")
	private int codigo;
	
	private static final long serialVersionUID = 1L;
	
	
	@OneToMany (cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	@JoinColumn (name = "deposito")
	private List<MovimientoStockBean> movimientos;

	@OneToOne
	private EmpleadoBean encargado;
	
	@OneToMany
	private List<ItemDepositoBean>productos;
	
	public void setMovimientos(List<MovimientoStockBean> movimientos) {
		this.movimientos = movimientos;
	}

	public List<MovimientoStockBean> getMovimientos() {
		return movimientos;
	}

	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}

	public int getCodigo() {
		return codigo;
	}

	public EmpleadoBean getEncargado() {
		return encargado;
	}

	public void setEncargado(EmpleadoBean encargado) {
		this.encargado = encargado;
	}

	public List<ItemDepositoBean> getProductos() {
		return productos;
	}

	public void setProductos(List<ItemDepositoBean> productos) {
		this.productos = productos;
	}
	


}
